using System;
using System.Collections.Generic;
using Contrib.Cache.Models;
using Orchard;

namespace Contrib.AppFabric.Services {
    public interface IAppFabricServices : IDependency, IDisposable {
        CacheItem Get(string cacheKey);
        void Remove(string cacheKey);
        void Add(string cacheKey, CacheItem cacheItem, TimeSpan timeSpan);

        IEnumerable<CacheItem> GetCacheItems();

        IEnumerable<string> GetSystemRegions();
        IEnumerable<KeyValuePair<string, object>> GetObjectsInRegion(string region);
        IDictionary<string, List<CacheItem>> GetRegionLevelCaches();
    }
}